Computers may emulate hardware to provide the appearance of hardware that does not actually exist to an operating system, application, logic, or process. Computers may also use emulation to partition one hardware function between multiple operating systems, applications, and so on. This emulation may also be referred to as virtualization.
Virtualization may be accomplished by mechanisms including, for example, pure software virtualization, hardware supported software virtualization, and the like. Software virtualization facilitates emulating hardware on a variety of processors, particularly if the virtualization code is written in a portable, structured manner. Hardware virtualization may require hardware functions to be designed into an underlying chip
With the introduction of virtualization technology, a computing service provider can now provide computing resources to customers dynamically and/or in a scalable manner. As the computing resource demands of the customer increase, the computing service provider can allocate additional computing resources in the form of virtual machine instances. For example, such resources can be provided to the customer as part of a virtual network connectable to the customer's own physical network.